#ifndef _PARTHUS_TC_INTERFACE_
#define _PARTHUS_TC_INTERFACE_

/*****************************************************************************
 *
 * MODULE NAME:     tc_interface.h
 * PROJECT CODE:    BlueStream
 * DESCRIPTION:     test control interface header
 * MAINTAINER:      Daire McNamara <Daire.McNamara@sslinc.com>
 * CREATION DATE:   27th January 2000
 *
 * SOURCE CONTROL: $Id: tc_interface.h,v 1.19 2009/12/30 11:04:52 tianwq Exp $
 *
 * LICENSE:
 *     This source code is copyright (c) 2000-2004 Ceva Inc.
 *     All rights reserved.
 *
 * REVISION HISTORY:
 *     27 Jan 2000    DMN   Initial Draft - support TCI_Read_Packet_Log
 *     01 Feb 2000    IG    Active IRQ, Build Params
 *     24 Feb 2000    DMN   Renamed and Split into two headers
 *
 ****************************************************************************/


#include "sys_config.h"
#include "sys_types.h"

void    TC_Ignore_Command(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);


void    TC_Write_Local_Hardware_Register(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);

void    TC_Reset_LC_Monitors(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);

void    TC_Read_Local_Default_Packet_Type(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void    TC_Write_Local_Default_Packet_Type(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);

#if(PRH_BS_CFG_SYS_TEST_MODE_TESTER_SUPPORTED == 1)
void    TC_Activate_Remote_DUT(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
#endif
void    TC_Perform_Test_Control(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);

void    TC_Increase_Remote_Power(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void    TC_Decrease_Remote_Power(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);

void    TC_Write_Local_Hop_Frequencies(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void    TC_Read_Local_Hop_Frequencies(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);

void    TC_Read_Local_Hardware_Version(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);

void    TC_Increase_Local_Volume(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void    TC_Decrease_Local_Volume(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);

void    TC_Write_Local_Hopping_Mode(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void    TC_Read_Local_Hopping_Mode(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);

void    TC_Write_Local_Whitening_Enable(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void    TC_Read_Local_Whitening_Enable(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);

void    TC_Write_Local_Link_Key_Type(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void    TC_Read_Local_Link_Key_Type(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);

void    TC_Read_Local_Extended_Features(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void    TC_Write_Local_Features(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void    TC_Write_Local_Extended_Features(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);

void    TC_Read_Local_Timing_Information(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void    TC_Write_Local_Timing_Information(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
#if (PRH_BS_CFG_SYS_LMP_TIMING_INFO_SUPPORTED==1)
void    TC_Read_Remote_Timing_Information(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
#endif

#if (PRH_BS_CFG_SYS_DATA_PUMP_SUPPORTED==1)
void    TC_Reset_Local_Pump_Monitors(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void    TC_Read_Local_Pump_Monitors(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
#endif

void    TC_Write_Local_Encryption_Key_Length(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void    TC_Read_Local_Encryption_Key_Length(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);

void    TC_Set_Local_Failed_Attempts_Counter(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void    TC_Clear_Local_Failed_Attempts_Counter(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);

void    TC_Read_Local_Baseband_Monitors(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void TC_Read_Local_Baseband_Monitors_EDR(void);

void    TC_Read_Local_Native_Clock(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void    TC_Write_Local_Native_Clock(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);

void    TC_Read_Local_Relative_Host_Controller_Mips(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);

void    TC_Set_Local_Next_Available_Am_Addr(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);

void    TC_Set_Local_Bd_Addr(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);

#if(PRH_BS_CFG_SYS_TEST_MODE_TESTER_SUPPORTED == 1)
void    TC_Write_Local_Radio_Power(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void    TC_Read_Local_Radio_Power(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);

void    TC_Write_Local_SyncWord(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
#endif

void    TC_Set_HCIT_UART_Baud_Rate(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);

void    TC_Change_Radio_Modulation(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void    TC_Read_Radio_Modulation(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);

void    TC_Set_Disable_Low_Power_Mode(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void    TC_Set_Enable_Low_Power_Mode(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void    TC_Read_R2P_Min_Search_Window(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void    TC_Write_R2P_Min_Search_Window(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);

void    TC_Write_Park_Parameters(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void    TC_Set_Broadcast_Scan_Window(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);

void    TC_Write_AFH_Control(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);

void    TC_Write_VCI_CLK_Override(u_int8 length, u_int8* p_pdu, t_lm_event_info *p_complete_event_info);
void    TC_Send_Encryption_Key_Size_Mask_Req(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);

#if (PRH_BS_CFG_SYS_TEST_MODE_TESTER_SUPPORTED==1)
void    TC_Read_Raw_RSSI(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void    TC_Read_BER(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void    TC_Read_PER(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void    TC_Read_Raw_RSSI_PER_BER(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
#endif

#if (PRH_BS_CFG_SYS_LOW_POWER_MODE_SUPPORTED==1) && defined(SHOGA)
void    TC_Force_System_Halt(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
#endif

#if (PRH_BS_CFG_SYS_SCO_REPEATER_SUPPORTED==1)
void    TC_Set_Disable_SCO_Repeater_Mode(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void    TC_Set_Enable_SCO_Repeater_Mode(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
#endif

void    TC_Write_eSCO_Retransmission_Mode(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void    TC_Read_eSCO_Retransmission_Mode(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);

void    TC_Write_Security_Timeouts(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);

void    TC_Write_Features(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void    TC_Write_Freq_Offset(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);

void    TC_Write_Min_Sleep_Interval(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);

void    TC_Read_PHY_Regitser(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void    TC_Write_PHY_Regitser(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);

void    TC_Read_PHY_Block(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void    TC_Write_PHY_Block(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void    TC_Set_PSkey(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void    TC_Run_Data(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);

void    TC_HID_Connect(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void    TC_HID_Disconnect(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void 	TC_HID_Send_Packet(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void 	TC_HID_Run_Fun(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);

void 	TC_HID_Erase_Flash(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void 	TC_HID_Write_Flash(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void 	TC_HID_Read_Flash(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void 	TC_HID_Write_FByte(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void 	TC_HID_Read_FByte(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void 	TC_HID_Write_Efuse(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);


void    TC_BaseBand_Test_Tx_Start(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void    TC_BaseBand_Test_Stop(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);

void    TC_MTK_56(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void    TC_MTK_5b(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void    TC_MTK_76(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void    TC_MTK_77(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void    TC_MTK_177(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void    TC_MTK_d0(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void    TC_MTK_d1(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);

void    TC_Write_Host_Log_Setting(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);

void    TC_Set_Filter(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);

void TC_PLACE_CALL(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void TC_REDAIL(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);

void TC_BCCMD_90(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);

void TC_Write_Buffer_Size(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);

void TC_Wifi_Freq_Set_Afh(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);

void TC_SPP_Start(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void TC_SPP_Send(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void TC_SPP_Connect(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void TC_SPP_Disconnect(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);
void TC_COMBINED_READ_RSSI(t_p_pdu p_payload, t_lm_event_info *p_complete_event_info);


#endif

